package com.wf.controller;

import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.wf.domain.ContractInfo;
import com.wf.service.ContractInfoService;
import com.wf.vo.Result;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

/**
 * 合同管理接口
 *
 * @author mpk
 * @since 2024/8/4 11:54:19
 */
@RestController
@CrossOrigin
@RequestMapping("/app/contract")
public class ContractController {

    /**
     * 合同信息服务
     */

    @Autowired
    ContractInfoService contractInfoService;

    /**
     * 根据房屋ID获取合同信息
     *
     * @param houseId 房屋ID
     * @return 返回合同信息的Result对象
     */
    @GetMapping("/{houseId}")
    public Result getContract(@PathVariable String houseId) {
        // 根据房屋ID查询对应的合同信息
        ContractInfo houseInfo = contractInfoService.getOne(
                new LambdaQueryWrapper<ContractInfo>()
                        .eq(ContractInfo::getHouseId, houseId));

        // 返回查询到的合同信息
        return Result.success(houseInfo);
    }
    /**
     * 获取合同pdf
     *
     * @param contractId
     * @return
     */
    @GetMapping("/pdf/{contractId}")
    public Result getContractPdf(@PathVariable String contractId) {
        String pdf = contractInfoService.getContractPdf(contractId);
        return Result.success(pdf);
    }

    /**
     * 根据id更新合同
     *
     * @param contractInfo
     * @return
     */
    @PostMapping("/update")
    public Result updateContract(@RequestBody ContractInfo contractInfo) {

        if (StrUtil.isNotEmpty(contractInfo.getContractStencil()) && StrUtil.isNotEmpty(contractInfo.getUserId().toString())) {
            boolean save = contractInfoService.updateById(contractInfo);
            return save ? Result.success("更新成功") : Result.failure("更新失败");
        } else {
            return Result.failure("合同模板和用户id不能为空");
        }


    }

}
